var Edicao  = 
{
    feedBackHtml: null,
    inProcess : false,
    originalHTML: false,
    countAlteration: 0,
    currentFile: null,
    newFile: null,
    init: function()
    {
        Edicao.feedBackHtml = $(".feedBackContent").html();        
        this.bindEvents.init();                            
        Edicao.originalHTML = $('#contet_form_edicao').html();        
    },
    bindEvents: 
    {
        init: function()
        {
            this.bindDeletar();
            this.bindEditar();
            this.bindCancelarEditar();
            this.bindCancelarConfirmacao();
            this.bindConfirmaEdicao();
        },
        bindDeletar : function()
        {                
            $(".deletar").live("click",function()
            {
                if(Edicao.validation.validDeletar(this))
                {
                    Edicao.actionsEvents.actionDeletar(this);
                }                                
                return false;
            });
        },
        bindEditar : function()
        {                           
            $(".editar").live("click",function()
            {
                if(Edicao.inProcess)
                {
                    return false
                }
                else
                {
                    Edicao.inProcess = true;
                }
                
                Edicao.countAlteration = 0;
                                
                $('#contet_form_edicao').html(Edicao.originalHTML);
                                                                                                
                Edicao.actionsEvents.actionEditar($(this).attr("href"));
                
                return false;
            });                        
        },
        bindCancelarEditar : function()
        {
            $(".cancelarEdicao").live("click",function()
            {                               
                Edicao.inProcess = false;
                Edicao.actionsEvents.actionCancelarEditar();                
                Edicao.currentFile = null;
                Edicao.newFile = null;
                return false;
            });             
        },
        bindCancelarConfirmacao : function()
        {
            $("#cancelarConfirmacao").live("click",function()
            {                       
                Edicao.countAlteration = 0;
                $("#modalConfirm").fadeOut("slow")               
            });             
        },
        bindAllCadastro : function()
        {
            Cadastro.eventPlusAssunto();
            Cadastro.eventPlusAutor();
            Cadastro.eventMinus();
            Cadastro.autoCopletAssunto();
            Cadastro.autoCopletAutor();
            Cadastro.eventBlockView();
            this.bindSubmitEdicao();
        },
        bindSubmitEdicao : function()
        {
            $("#edicaoLivro").submit(function()
            {                
                Edicao.feedBack.removeErros();

                //validar campos
                arquivo = Edicao.validation.validFormEdicao();                                
                
                if(Edicao.countAlteration == 0)
                {                    
                    alert("Nada foi alterado!");
                }                
                else if(arquivo)
                {                          
                    var msg = '<p id="content_modal">';
                    
                    msg = msg + '<span class="destaque">Titulo:</span class="destaque"> ' + arquivo.titulo + '<br />';

                    msg = msg + '<span class="destaque">Autore(s): </span>'+ arquivo.autor[0] + '<br/>'; 
                    for (i = 1; i < arquivo.autor.length; i++) 
                    {
                        msg = msg + '<span class="destaque"></span>'+ arquivo.autor[i] + "<br />";
                    }

                    msg = msg + '<span class="destaque">Ano:</span> ' + arquivo.ano +'<br />';

                    msg = msg + '<span class="destaque">Assunto(s): </span>'+ arquivo.assunto[0] + '<br/>'; 
                    for (i = 1; i < arquivo.assunto.length; i++) 
                    {
                        msg = msg + '<span class="destaque"></span>'+ arquivo.assunto[i] + "<br />";
                    }                           

                    if(Edicao.currentFile.tipo == "artigo")
                    {                    
                        msg = msg + '<span class="destaque">Cidade:</span> ' + arquivo.local +'<br />';
                        
                        msg = msg + '<span class="destaque">Congresso:</span> ' + arquivo.instituicao_de_ensino +'<br />';                        
                    }
                    else if (Edicao.currentFile.tipo == "tcc" || Edicao.currentFile.tipo == "tese" || Edicao.currentFile.tipo == "dissertacoes" )
                    {                        
                        msg = msg + '<span class="destaque">Orientador:</span> ' + Edicao.currentFile.orientador +'<br />';                        
                     
                        msg = msg + '<span class="destaque">Instituição de Ensino:</span> ' + arquivo.instituicao_de_ensino +'<br />';                        
                    }
                    else if (Edicao.currentFile.tipo == "video" || Edicao.currentFile.tipo == "imagem" || Edicao.currentFile.tipo == "sic" )
                    {
                        msg = msg + '<span class="destaque">Local:</span> ' + arquivo.local +'<br />';

                    }    
                    
                    Edicao.feedBack.launchModal(msg);
                }                
                return false;
            });                          
        },
        bindConfirmaEdicao:function()
        {
            $("#confimarEdicao").live("click",function()
            {
                Edicao.feedBack.showInfoSubmitEdicao();   
                
                Edicao.newFile.id = Edicao.currentFile.id;
  
                $.ajax
                ({
                    type: "POST",
                    url: urlBaseCompoent+'editar',                
                    dataType: "json",     
                    data:{file: Edicao.newFile },                    
                    success: function callback(data) 
                    {                        
                        data = data.content;                         
                        if(!data.error.success || data.error.success == 'undefined')
                        {                         
                            alert("Erro:" + data.error.description);                        
                        }
                        else
                        {                                                   
                            alert("Arquivo editado com sucesso!");
                            $(".cancelarEdicao").click();
                            Pesquisa.feedBack.showMSG(false,'');
                        }
                        Edicao.feedBack.hideInfoSubmitEdicao();
                    },
                    error: function () 
                    {  
                        Edicao.feedBack.hideInfoSubmitEdicao();
                        alert("Erro: Internal Server Error");
                    }

                }); 
                                
                
            })      
        }
    },
    actionsEvents:
    {
        actionDeletar : function(file)
        {   
            id = $(file).attr("href");
            name = $(file).attr("alt");
                        
            $(file).closest(".file_result").hide('slow', 
            function()
            {                               
               $.ajax
                ({
                    type: "POST",
                    url: urlBaseCompoent+'deletar',
                    dataType: "json",                
                    data:{id: id },
                    beforeSend : function()
                    {                             
                        parent = $(file).closest(".file_result");
                        
                        html = $(parent).html();
                        
                        parent.html(Edicao.feedBackHtml).show("slow");
                                                        
                        son = $(parent).children(".feedBack");
                            
                        son.css({"height" : "15px", "font-weight":"bold"});
                
                        $(son).children(".msg").html("Deletando...");
                                        
                        $(son).children(".img_load").show();                                      
                        
                        $(son).children(".msg").show();                                                                        
                    },
                    success: function(data) 
                    {                              
                        data = data.content;
                                                                        
                        if(!data.error.success || data.error.success == 'undefined')
                        {                           
                            $(son).children(".msg").html(data.error.description);
                            $(son).children(".msg").animate({"color":"#FFBB00"}, function()
                            {                             
                                 $(parent).delay(500).hide("slow", function()
                                 {
                                     $(this).html(html);
                                     $(this).show("slow");
                                 });
                            });                                                                                                                
                        }
                        else
                        {   
                            $(son).children(".msg").html("Deletado com sucesso: "+name);
                            $(son).children(".msg").animate({"color":"#0055BB"}, function()
                            {                             
                                 $(parent).delay(500).hide("slow", function()
                                 {
                                     $(this).remove();                                     
                                 });
                            });                                                                                                                                             
                        }
                        return false;
                    },
                    error: function () 
                    {                                                                        
                        $(son).children(".msg").html('Internal Server erro!');
                        $(son).children(".msg").animate({"color":"#c00"}, function()
                        {                             
                             $(parent).delay(500).hide("slow", function()
                             {
                                 $(this).html(html);
                                 $(this).show("slow");
                             });
                        });
                        return false;
                    }                  
                });
               
            });
        },
        actionEditar: function(id)
        {            
            if(Pesquisa.arquivo[id])
            {                 
                Edicao.currentFile = Pesquisa.arquivo[id];
                $("#contet_form_pesquisa").slideToggle("slow", function()
                {
                    $('input[name="titulo"]').val(Pesquisa.arquivo[id].titulo);                    
                    $('input[name="ano"]').val(Pesquisa.arquivo[id].ano);
                                                                                                                                                                                 
                    if(Pesquisa.arquivo[id].tipo == "artigo")
                    {                    
                        $("#local .lineForm .left_colum").html("Cidade<span class='obrigatorio'>*</span>: ");
                        $("#local").show();
                        $('input[name="local"]').val(Pesquisa.arquivo[id].local);
                        
                        $("#instituicao_de_ensino .lineForm .left_colum").html("Congresso<span class='obrigatorio'>*</span>: ");
                        $("#instituicao_de_ensino").show();
                        $('input[name="instituicao_de_ensino"]').val(Pesquisa.arquivo[id].instituicao_de_ensino);
                    }
                    else if (Pesquisa.arquivo[id].tipo == "tcc" || Pesquisa.arquivo[id].tipo == "tese" || Pesquisa.arquivo[id].tipo == "dissertacoes" )
                    {                
                        $("#instituicao_de_ensino .lineForm .left_colum").html("Instituição de Ensino<span class='obrigatorio'>*</span>: ");
                        $("#instituicao_de_ensino").show();
                        $('input[name="instituicao_de_ensino"]').val(Pesquisa.arquivo[id].instituicao_de_ensino);
                        
                        $("#orientador").show();
                        $('input[name="orientador"]').val(Pesquisa.arquivo[id].orientador);
                    }
                    else
                    {
                        $("#local .lineForm .left_colum").html("Local<span class='obrigatorio'>*</span>: ");
                        $("#local").show();
                        $('input[name="local"]').val(Pesquisa.arquivo[id].local);
                    }
                                                                                                                                                                                                        
                    for(i = 0; i < Pesquisa.arquivo[id].autores.length; i++)
                    {                                
                        if(i == 0)
                        {
                            $('input[name="autor"]').val(Pesquisa.arquivo[id].autores[i].nome);
                        }    
                        else
                        {
                            $("#more_autor").prepend('<div class="lineForm">\n\
                                    <label class="left_colum"></label>\n\
                                    <label class="rigth_colum">\n\
                                            <input type="text" autocomplete="on" disabled="true" class="autor" name="autor" value="'+Pesquisa.arquivo[id].autores[i].nome+'" />\n\
                                    </label>\n\
                                    <a href="#"><span class="minus">-</span></a>\n\
                                </div>');
                        }
                    } 
                    
                    for(i = 0; i < Pesquisa.arquivo[id].assuntos.length; i++)
                    {                                
                        if(i == 0)
                        {
                            $('input[name="assunto"]').val(Pesquisa.arquivo[id].assuntos[i].assunto);
                        } 
                        else
                        {
                            $("#more_assunto").prepend('\
                                    <div class="lineForm">\n\
                                        <label class="left_colum">\n\
                                        </label>\n\
                                        <label class="rigth_colum">\n\
                                            <input type="text" autocomplete="on" disabled="true" class="assunto" name="assunto" value="'+Pesquisa.arquivo[id].assuntos[i].assunto+'" />\n\
                                        </label>\n\
                                        <a href="#"><span class="minus">-</span></a></div>');
                        }
                    } 
                    
                    Edicao.bindEvents.bindAllCadastro();
                                                                                
                    $("#contet_form_edicao").slideToggle("slow");
                    
                })                    
            }
        },
        actionCancelarEditar: function()
        {
            $("#contet_form_edicao").slideToggle("slow", function()
            {
                Edicao.countAlteration = 0;
                 $("#contet_form_pesquisa").slideToggle("slow");                                                                                                                        
            });
        }
    },
    validation :
    {
        validDeletar: function(file)
        {                                    
            return confirm("Deseja realmente deletar: "+ $(file).attr("alt"));           
        },
        validFormEdicao : function()
        {                                         
            Edicao.newFile = new Object();
            Edicao.newFile.addAssunto = new Array();
            Edicao.newFile.addAutor = new Array();
            Edicao.newFile.removeAssunto = new Array();
            Edicao.newFile.removeAutor = new Array();
            
            var erros = 0;            
            arquivo = new Object();        
            arquivo.titulo = $("input[type=text][name=titulo]");
            arquivo.ano = $("input[type=number][name=ano]");            
            arquivo.assunto = new Array();
            arquivo.autor = new Array();
            
            c = 0;
            countAlter = 0;
            $("input[type=text][name=assunto]").each(function()
            {
                if(!Cadastro.isEmpty($(this).val()))
                {                                
                    if(arquivo.assunto.indexOf($(this).val()) == -1)
                    {
                        arquivo.assunto[c] = $(this).val();
                                                                                           
                        if(!Edicao.inArrayAssunto(Edicao.currentFile.assuntos, arquivo.assunto[c]))
                        {
                            Edicao.newFile.addAssunto[countAlter] = arquivo.assunto[c];
                            countAlter++;
                            Edicao.countAlteration++;
                        }
                        c++;
                    }                    
                } 

            }); 
            
            countAlter = 0;
            for(c = 0; c < Edicao.currentFile.assuntos.length; c++)
            {                
                if(!Edicao.inArray(arquivo.assunto, Edicao.currentFile.assuntos[c].assunto))
                {
                    Edicao.newFile.removeAssunto[countAlter] = Edicao.currentFile.assuntos[c].id;
                    countAlter++;
                    Edicao.countAlteration++;
                }
            }
            
            c = 0;  
            countAlter = 0;
            $("input[type=text][name=autor]").each(function()
            {
                if(!Cadastro.isEmpty($(this).val()))
                {                                
                    if(arquivo.autor.indexOf($(this).val()) == -1)
                    {
                        arquivo.autor[c] = $(this).val();                                                
                        if(!Edicao.inArrayAutor(Edicao.currentFile.autores, arquivo.autor[c]))
                        {                            
                            Edicao.newFile.addAutor[countAlter] = arquivo.autor[c];
                            countAlter++;
                            Edicao.countAlteration++;
                        }
                        c++;
                    }                
                }                                
            }); 
            
            countAlter = 0;
            for(c = 0; c < Edicao.currentFile.autores.length; c++)
            {                
                if(!Edicao.inArray(arquivo.autor, Edicao.currentFile.autores[c].nome))
                {                    
                    Edicao.newFile.removeAutor [countAlter] = Edicao.currentFile.autores[c].id;
                    countAlter++;
                    Edicao.countAlteration++;
                }
            }
                                                           
            //local
            $_local = $("input[type=text][name=local]");
            local = $_local.val();
            if(!Cadastro.isEmpty(local))
            {
                arquivo.local = local;
                //verificaAlteracao
                if(Edicao.currentFile.local != arquivo.local)
                {
                    Edicao.newFile.local = arquivo.local; 
                    Edicao.countAlteration++;
                } 
            }
            else if($("#local").css("display")!= "none" )
            {
                Cadastro.setErroImput($_local, "");
                erros++;
            }

            //orientador        
            $_orientador = $("input[type=text][name=orientador]");
            orientador = $_orientador.val();
            if(!Cadastro.isEmpty(orientador))
            {
                arquivo.orientador = orientador;
                //verificaAlteracao
                if(Edicao.currentFile.orientador != arquivo.orientador)
                {
                    Edicao.newFile.orientador = arquivo.orientador;
                    Edicao.countAlteration++;
                }
            }
            else if($("#orientador").css("display")!= "none" )
            {
                Cadastro.setErroImput($_orientador, "");
                erros++;
            }

            //insntituição de ensino        
            $_instituicao_de_ensino = $("input[type=text][name=instituicao_de_ensino]");
            instituicao_de_ensino = $_instituicao_de_ensino.val();
            if(!Cadastro.isEmpty(instituicao_de_ensino))
            {
                 arquivo.instituicao_de_ensino = instituicao_de_ensino;
                 //verificaAlteracao
                if(Edicao.currentFile.instituicao_de_ensino != arquivo.instituicao_de_ensino)
                {
                    Edicao.newFile.instituicao_de_ensino = arquivo.instituicao_de_ensino;    
                    Edicao.countAlteration++;
                }
            }
            else if($("#instituicao_de_ensino").css("display")!= "none" )
            {
                Cadastro.setErroImput($_instituicao_de_ensino, "");
                erros++;
            }                                               

            //titulo
            if(Cadastro.isEmpty(arquivo.titulo.val()))
            {
                Cadastro.setErroImput(arquivo.titulo, "Falta o titulo!");
                erros++;
            }
            else
            {
                arquivo.titulo = arquivo.titulo.val();
                
                //verificaAlteracao
                if(Edicao.currentFile.titulo != arquivo.titulo)
                {                    
                    Edicao.newFile.titulo = arquivo.titulo;     
                    Edicao.countAlteration++;
                }                                
            }

            //ano
            if(Cadastro.isEmpty(arquivo.ano.val()))
            {
                Cadastro.setErroImput(arquivo.ano, "Falta o ano!");
                erros++;
            }
            else if(!Cadastro.isNumero(arquivo.ano.val()))
            {
                Cadastro.setErroImput(arquivo.ano, "Ano dever ser um numero maior que zero!");
                erros++;            
            }
            else
            {                            
                arquivo.ano = arquivo.ano.val();
                
                //verificaAlteracao
                if(Edicao.currentFile.ano != arquivo.ano)
                {
                    Edicao.newFile.ano = arquivo.ano;  
                    Edicao.countAlteration++;
                } 
            }
           
            //assuntos
            if(arquivo.assunto.length == 0)
            {
                Cadastro.setErroImput("input[type=text][name=assunto]", "Pelo menos um assunto dever ser escolhido!");
                erros++;                            
            }

            //autor
            if(arquivo.autor.length == 0)
            {
                Cadastro.setErroImput("input[type=text][name=autor]", "Pelo menos um autor dever ser escolhido!");
                erros++;                            
            }
            
            if(erros == 0)
            {
                return arquivo;
            }                                                
            return false;
        }
    },
    inArrayAssunto: function (arr, val) 
    {
	inArray = false;        
	for (i = 0; i < arr.length; i++)
        {            
            if (val == arr[i].assunto)
            {
                return true;   
            }        
        }
	return inArray;
    },    
    inArrayAutor: function (arr, val) 
    {
	inArray = false;        
	for (i = 0; i < arr.length; i++)
        {            
            if (val == arr[i].nome)
            {
                return true;   
            }        
        }
	return inArray;
    },
    inArray: function (arr, val) 
    {                
	inArray = false;        
	for (i = 0; i < arr.length; i++)
        {            
            if (val == arr[i])
            {
                return true;   
            }        
        }
	return inArray;
    },
    feedBack :
    {
        hideMSG: function()
        {
            $("#contet_form_pesquisa .feedBack .img_load").hide();
            $("#contet_form_pesquisa .feedBack .msg").hide();            
        },
        showMSG: function(load,msg)
        {
            $("#contet_form_pesquisa .feedBack .msg").html(msg);
            if(load)
            {
                $("#contet_form_pesquisa .feedBack .img_load").show();                          
            }   
            $("#contet_form_pesquisa .feedBack .msg").show();  
        },
        removeErros:function()
        {
            $(".erro").remove();
            $(".inputTextErro").each(function()
            {
                $(this).removeClass("inputTextErro");                
            });           
        },
        launchModal:function(msg)
        {
            $("#msg_popup").html(msg);
            $("#modalConfirm").fadeIn("slow");
        },
        hideInfoSubmitEdicao: function()
        {
            $("#block_view").hide();
            $("#processando").remove();
            $("#img_load_save").hide();
            $("#confimarEdicao").show();
            $("#cancelarConfirmacao").show();
            $("#cancelarConfirmacao").click();
        },
        showInfoSubmitEdicao: function()
        {
            $("#confimarEdicao").hide();
            $("#cancelarConfirmacao").hide();
            $("#img_load_save").show();
            $("#content_btns").append('<span id="processando">Processando...</span>');
            $("#block_view").show();
        },
    }
};